(xm_popup_menu): Don't set XmNmenuPost unless
authorGerd Moellmann <gerd@gnu.org>
Tue, 13 Mar 2001 12:31:36 +0000 (12:31 +0000)
committerGerd Moellmann <gerd@gnu.org>
Tue, 13 Mar 2001 12:31:36 +0000 (12:31 +0000)
necessary.  From Rick Scott <rwscott@alumni.uwaterloo.ca>.

lwlib/lwlib-Xm.c

index 38142d79387e73e997aef019599c8e1ee1a3f0c5..d380077717acc0215a77dfcee0ec4cc14cc3a42c 100644 (file)
@@ -1728,19 +1728,29 @@ xm_popup_menu (widget, event)
 
   if (event->type == ButtonPress || event->type == ButtonRelease)
     {
-      /* This is so totally ridiculous: there's NO WAY to tell Motif
-        that *any* button can select a menu item.  Only one button
-        can have that honor.
-       */
-      char *trans = 0;
-      if      (event->xbutton.state & Button5Mask) trans = "<Btn5Down>";
-      else if (event->xbutton.state & Button4Mask) trans = "<Btn4Down>";
-      else if (event->xbutton.state & Button3Mask) trans = "<Btn3Down>";
-      else if (event->xbutton.state & Button2Mask) trans = "<Btn2Down>";
-      else if (event->xbutton.state & Button1Mask) trans = "<Btn1Down>";
-      if (trans) XtVaSetValues (widget, XmNmenuPost, trans, NULL);
+      /* Setting the menuPost resource only required by Motif 1.1 and
+        LessTif 0.84 and earlier.  With later versions of LessTif,
+        setting menuPost is unnecessary and may cause problems, so
+        don't do it.  */
+#if XmVersion < 1002 || (defined LESSTIF_VERSION && LESSTIF_VERSION < 84)
+       {
+         /* This is so totally ridiculous: there's NO WAY to tell Motif
+            that *any* button can select a menu item.  Only one button
+            can have that honor.  */
+      
+         char *trans = 0;
+         if      (event->xbutton.state & Button5Mask) trans = "<Btn5Down>";
+         else if (event->xbutton.state & Button4Mask) trans = "<Btn4Down>";
+         else if (event->xbutton.state & Button3Mask) trans = "<Btn3Down>";
+         else if (event->xbutton.state & Button2Mask) trans = "<Btn2Down>";
+         else if (event->xbutton.state & Button1Mask) trans = "<Btn1Down>";
+         if (trans) XtVaSetValues (widget, XmNmenuPost, trans, NULL);
+       }
+#endif
+      
       XmMenuPosition (widget, (XButtonPressedEvent *) event);
     }
+  
   XtManageChild (widget);
 }